package com.pro.controller;

import com.pro.entry.*;
import com.pro.service.JsCourseService;
import com.pro.utils.JsonData;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import java.util.List;

/**
 * @Author 谭金诚
 * @Description TODO
 * @Date 2022/4/15 11:27
 * @Version 1.0
 */
@Controller
@RequestMapping("/course")
public class JsCourseController {

    @Autowired
    private JsCourseService service;

    @GetMapping("/getCourses")
    @ResponseBody
    public JsonData getCourses(Integer currentPage, Integer pageSize, Integer courseStatus, Integer courseCstatus){
        List<JsCourse> courses = service.getCourses(currentPage,pageSize,courseStatus,courseCstatus);
        return courses != null ? JsonData.buildSuccess(courses) : JsonData.buildError("服务端错误");
    }

    @GetMapping("/getCourseDetails")
    @ResponseBody
    public JsonData getCourseDetails(JsCourse course){
        JsCourse courseDetails = service.getCourseDetails(course);
        return courseDetails != null ? JsonData.buildSuccess(courseDetails) : JsonData.buildError("服务端错误");
    }

    @GetMapping("/getCourseMenu")
    @ResponseBody
    public JsonData getCourseMenu(Integer userId){
        List<JsCourse> courseMenu = service.getCourseMenu(userId);
        return courseMenu != null ? JsonData.buildSuccess(courseMenu) : JsonData.buildError("服务端错误");
    }

    @GetMapping("/getCourseComments")
    @ResponseBody
    public JsonData getCourseComments(Integer courseId, Integer type){
        List<JsComment> courseComments = service.getCourseComments(courseId, type);
        return courseComments != null ? JsonData.buildSuccess(courseComments) : JsonData.buildError("服务端错误");
    }

    @GetMapping("/getCourseCommentsNums")
    @ResponseBody
    public JsonData getCourseCommentsNums(Integer courseId, Integer type){
        Integer commNums = service.getCourseCommentsNums(courseId, type);
        return commNums != null ? JsonData.buildSuccess(commNums) : JsonData.buildError("服务端错误");
    }

    @GetMapping("/getPraisedComms")
    @ResponseBody
    public JsonData getPraisedComms(){
        List<Integer> praisedComms = service.getPraisedComms();
        return praisedComms != null ? JsonData.buildSuccess(praisedComms) : JsonData.buildError("服务端错误");
    }

    @PostMapping("/getPraisedCommsLog")
    @ResponseBody
    public JsonData getPraisedCommsLog(JsCommentLike commentLike){
        Integer praisedCommsLog = service.getPraisedCommsLog(commentLike);
        return praisedCommsLog != 0 ? JsonData.buildSuccess(praisedCommsLog) : JsonData.buildSuccess("服务端错误");
    }

    @PostMapping("/addCourseComment")
    @ResponseBody
    public JsonData addCourseComment(JsComment comment){
        boolean flag = service.addCourseComment(comment);
        return flag ? JsonData.buildSuccess(flag) : JsonData.buildError("服务端错误");
    }

    @GetMapping("/getPraiseCourse")
    @ResponseBody
    public JsonData getPraiseCourse(JsFabulous fabulous){
        JsFabulous jsFabulous = service.getPraiseCourse(fabulous);
        return jsFabulous != null ? JsonData.buildSuccess(true) : JsonData.buildError("服务端错误");
    }

    @GetMapping("/getCollectionCourse")
    @ResponseBody
    public JsonData getCollectionCourse(JsUserCollection userCollection){
        JsUserCollection collectionCourse = service.getCollectionCourse(userCollection);
        return collectionCourse != null ? JsonData.buildSuccess(true) : JsonData.buildError("服务端错误");
    }

    @PostMapping("/addPraiseCourse")
    @ResponseBody
    public JsonData addPraiseCourse(JsFabulous fabulous){
        boolean flag = service.addPraiseCourse(fabulous);
        return flag ? JsonData.buildSuccess(flag) : JsonData.buildError("服务端错误");
    }

    @PostMapping("/delPraiseCourse")
    @ResponseBody
    public JsonData delPraiseCourse(JsFabulous fabulous){
        boolean flag = service.delPraiseCourse(fabulous);
        return flag ? JsonData.buildSuccess(flag) : JsonData.buildError("服务端错误");
    }

    @PostMapping("/addCollectionCourse")
    @ResponseBody
    public JsonData addCollectionCourse(JsUserCollection userCollection){
        boolean flag = service.addCollectionCourse(userCollection);
        return flag ? JsonData.buildSuccess(flag) : JsonData.buildError("服务端错误");
    }

    @PostMapping("/delCollectionCourse")
    @ResponseBody
    public JsonData delCollectionCourse(JsUserCollection userCollection){
        boolean flag = service.delCollectionCourse(userCollection);
        return flag ? JsonData.buildSuccess(flag) : JsonData.buildError("服务端错误");
    }

    @GetMapping("/getHotKeywords")
    @ResponseBody
    public JsonData getHotKeywords(Integer num){
        List<JsSearchKeywords> hotKeywords = service.getHotKeywords(num);
        return hotKeywords != null ? JsonData.buildSuccess(hotKeywords) : JsonData.buildError("服务端错误");
    }


}
